// mysql数据库版本8.0 nodejs 连接mysql时， 下载mysql2模块包。
//  npm i mysql2
// 1. 引入mysql
const mysql = require('mysql2')

/**
 *
 * @param {*} sql
 * @param {*} callback
 */
function queryDB(sql, callback) {
	// 2. 创建数据库连接对象
	const connection = mysql.createConnection({
		host: 'localhost', // 数据库服务端,localhost表示本机
		user: 'root', // 用户名
		password: 'b123', // 密码
		database: 'goodsDB', // 数据库名
	})

	// 3. 建立数据库连接
	connection.connect()

	// 4. 执行sql语句
	// 第一个参数： SQL语句
	// 第二个参数:  查询结果

	connection.query(sql, function (err, results) {
		if (err) {
			console.log('数据库出错', err)
			return
		}
		callback(results)
	})

	// 5. 关闭数据库连接
	connection.end()
}

/**
 * Promise
 * 异步数据库操作
 */
function queryDBPromise(sql) {
	return new Promise((resolve, reject) => {
		// 2. 创建数据库连接对象
		const connection = mysql.createConnection({
			host: 'localhost', // 数据库服务端,localhost表示本机
			user: 'root', // 用户名
			password: 'b123', // 密码
			database: 'goodsDB', // 数据库名
		})

		// 3. 建立数据库连接
		connection.connect()

		// 4. 执行sql语句
		// 第一个参数： SQL语句
		// 第二个参数:  查询结果

		connection.query(sql, function (err, results) {
			if (err) {
				console.log('数据库出错', err)
				reject(err)
				return
			}

			resolve(results)
		})

		// 5. 关闭数据库连接
		connection.end()
	})
}

module.exports = {
	queryDB,
	queryDBPromise,
}
